import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace AiPromptTagApi {
  /** 提示词标签信息 */
  export interface PromptTag {
    id: number; // 提示词标签ID
    name: string; // 标签名称
    icon?: string; // 标签图标
    color?: string; // 颜色
    sort?: number; // 排序
    systemFlag?: boolean; // 是否系统内置
    templatesCount?: number; // 提示词模版个数
  }
}

/** 查询提示词标签分页 */
export function getPromptTagPage(
  data: PageParam,
  desensitize: boolean,
  encrypt: boolean,
) {
  return requestClient.post<PageResult<AiPromptTagApi.PromptTag>>(
    '/ai/prompt-tag/page',
    data,
    { desensitize, encrypt },
  );
}

/** 查询提示词标签详情 */
export function getPromptTag(id: number) {
  return requestClient.get<AiPromptTagApi.PromptTag>(
    `/ai/prompt-tag/get?id=${id}`,
  );
}

/** 新增提示词标签 */
export function createPromptTag(data: AiPromptTagApi.PromptTag) {
  return requestClient.post('/ai/prompt-tag/create', data);
}

/** 修改提示词标签 */
export function updatePromptTag(data: AiPromptTagApi.PromptTag) {
  return requestClient.put('/ai/prompt-tag/update', data);
}

/** 删除提示词标签 */
export function deletePromptTag(id: number) {
  return requestClient.delete(`/ai/prompt-tag/delete?id=${id}`);
}

/** 批量删除提示词标签 */
export function deletePromptTagList(ids: number[]) {
  return requestClient.delete(
    `/ai/prompt-tag/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出提示词标签 */
export function exportPromptTag(params: any) {
  return requestClient.download('/ai/prompt-tag/export-excel', { params });
}
